﻿using System.Collections.Generic;
using ProjetoSolo.QueroGas.Dominio.Entidades;
using ProjetoSolo.QueroGas.Dominio.Repositorios;
using ProjetoSolo.QueroGas.Infraestrutura.PersistenciaAdo;
using ProjetoSolo.QueroGas.Infraestrutura.PersistenciaAdo.Repositorios;
using ProjetoSolo.QueroGas.Infraestrutura.Validacao;

namespace ProjetoSolo.QueroGas.Aplicacao.Servicos
{
    public static class ServicoDistribuidora
    {
        private const string stringConexao = "QueroGas";

        public static IEnumerable<Distribuidora> ListarDistribuidoras()
        {
            IEnumerable<Distribuidora> listaDistribuidoras;

            using (IContextoRepositorio contexto = new ContextoAdo(stringConexao))
            {
                IRepositorioDistribuidora repositorio = new RepositorioDistribuidora(contexto);
                listaDistribuidoras = repositorio.PegarListaCompleta();
            }
        
            return listaDistribuidoras;
        }

        public static int CadastrarDistribuira(string nomeDistribuidora)
        {
            RegraValidacao.VerificarStringVazia(nomeDistribuidora, "O parametro nomeDistribuidora é obrigatorio");

            int idNovaDistribuidora = 0;

            using (IContextoRepositorio contexto = new ContextoAdo(stringConexao))
            {
                Distribuidora distribuidora = new Distribuidora(nomeDistribuidora);

                IRepositorioDistribuidora repositorio = new RepositorioDistribuidora(contexto);
                idNovaDistribuidora = repositorio.Cadastrar(distribuidora);
            }

            return idNovaDistribuidora;
        }        
    }
}
